/**
 * 
 */
Ext.ns("messageCenter");
messageCenter.init = function() {
	messageCenter.search_Id;// 搜索时选项
	messageCenter.big_Id;// 定义选定的大类型的序列号
	messageCenter.big_Name;// 定义选定的大类型名称
	messageCenter.conduction_Id;
	messageCenter.Menu;
	messageCenter.before_Id;
	messageCenter.MenuClick;
	messageCenter.photoPath;
	messageCenter.sm = new Ext.grid.CheckboxSelectionModel({
				handleMouseDown : Ext.emptyFn
			});
	messageCenter.cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
			messageCenter.sm, {
				header : '主题',
				dataIndex : 'theme',
				sortable : true
			}, {
				header : '内容',
				dataIndex : 'content',
				sortable : true
			}, {
				header : '时间',
				dataIndex : 'startTime',
				sortable : true,
				renderer : Ext.util.Format.dateRenderer('Y-m-d')
			}, {
				header : '发件人',
				dataIndex : 'place_Name',
				sortable : true
			}, {
				header : '状态',
				dataIndex : 'message_State',
				sortable : true,
				renderer : function(value, celmeta, record) {
					var a = record.data["message_State"];
					if (a == 1) {
						return "收件";
					} else {
						return "发件";
					}
				}
			}, {
				header : '接续主题',
				dataIndex : 'continue_Theme',
				sortable : true
			}]);

	messageCenter.store = new Ext.data.JsonStore({
				url : 'center/showMessageBox',
				totalProperty : 'total',
				root : 'messages',
				baseParams : {
					limit : 20
				},
				fields : [{
							name : "theme_Id",
							mapping : 'message_Id',
							type : 'int'
						}, {
							name : "theme",
							mapping : 'message_Theme',
							type : 'string'
						}, {
							name : "content",
							mapping : 'message_Contents',
							type : 'string'
						}, {
							name : "startTime",
							mapping : 'message_Date',
							type : 'string'
						}, {
							name : "fromPlace",
							mapping : 'message_From.conduction_Id',
							type : 'int'
						}, {
							name : "place_Name",
							mapping : 'place_Name',
							type : 'string'
						}, {
							name : "message_State",
							mapping : 'message_State',
							type : 'string'
						}, {
							name : "message_IdBefore",
							mapping : 'message_IdBefore',
							type : 'string'
						}, {
							name : "continue_Theme",
							mapping : 'message_BeforeTheme',
							type : 'string'
						}]
			});
	messageCenter.citys = new Ext.data.JsonStore({
				url : 'center/selectCityInfo',
				totalProperty : 'total',
				root : 'citys',
				fields : [{
							name : "city_Id",
							type : 'int'
						}, {
							name : "city_Name",
							type : 'string'
						}]
			});
	messageCenter.conductions = new Ext.data.JsonStore({
				url : 'center/selectConductions',
				totalProperty : 'total',
				root : 'conductions',
				fields : [{
							name : "conduction_Id",
							type : 'int'
						}, {
							name : "conduction_Name",
							type : 'string'
						}]
			});
	messageCenter.Panel = new Ext.grid.GridPanel({
				deferredRender : true,
				sm : messageCenter.sm,
				cm : messageCenter.cm,
				store : messageCenter.store,
				loadMask : true,
				height : 450,
				viewConfig : {
					columnsText : '选择显示列',
					forceFit : true
				},
				tbar : new Ext.Toolbar(["-", {
							text : "查询一周",
							handler : function() {
								messageCenter.store.load({
											params : {
												state : 4
											}
										});
							}
						}, "-", {
							text : "显示所有",
							handler : function() {
								messageCenter.store.load({
											params : {
												state : 5
											}
										});
							}
						}, '-', {
							text : '撰写邮件',
							handler : function() {
								if (messageCenter.addWindow.isVisible()) {
									messageCenter.addWindow.hide(this,
											function() {

											});
								} else {
									messageCenter.addWindow.show(this,
											function() {

											});
								}
							}
						}, '-', {
							id : 'search_Type',
							allowBlank : false,
							emptyText : '请选择城市',
							blankText : '对不起，请选择城市！',
							xtype : 'combo',
							mode : 'remote',
							valueField : 'city_Name',
							displayField : 'city_Name',
							triggerAction : 'all',
							width : 100,
							store : messageCenter.citys,
							listeners : {
								'select' : function(combo) {
									messageCenter.conductions.load({
												params : {
													city_Name : combo
															.getValue(),
													limit : 8
												}
											});
								}
							}
						}, {
							allowBlank : false,
							emptyText : '请选择发送高校或单位',
							blankText : '对不起，请选择发送高校或单位',
							xtype : 'combo',
							mode : 'local',
							triggerAction : 'all',
							valueField : 'conduction_Id',
							displayField : 'conduction_Name',
							pageSize : 8,
							minListWidth : 300,
							store : messageCenter.conductions,
							listeners : {
								'select' : function(combo) {
									messageCenter.store.load({
											params : {
												state : 2,
												conduction_Id:combo.getValue()
											}
										});
								}
							}
						}, "-", {
							text : "收件箱",
							handler : function() {
								messageCenter.store.load({
											params : {
												state : 1
											}
										});
							}
						}, "-", {
							text : "发件箱",
							handler : function() {
								messageCenter.store.load({
											params : {
												state : 2
											}
										});
							}
						}]),
				bbar : new Ext.PagingToolbar({
							id : 'messageCenter.pagetool',
							pageSize : 10,
							store : messageCenter.store,
							displayInfo : true,
							displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
							emptyMsg : "没有记录"
						})
			});
	messageCenter.addPanel = new Ext.FormPanel({
				defaultType : 'textfield',
				width : 700,
				labelAlign : 'center',
				constrain : true,
				constrainHeader : true,
				bodyStyle : {
					padding : '20px'
				},
				viewConfig : {
					forceFit : true
				},
				items : [{
							fieldLabel : '主题名称',
							allowBlank : false,
							blankText : '对不起，请填写主题名称！',
							emptyText : '请填写主题名称',
							msgTarget : 'side',
							minLength : 6,
							minLengthText : '请输入主题名称大于6个字符',
							maxLength : 20,
							maxLengthText : '请输入主题名称小于20个字符',
							name : 'message_Theme'
						}, {
							id : 'search_city',
							fieldLabel : '发送地址',
							allowBlank : false,
							emptyText : '请选择城市',
							blankText : '对不起，请选择城市',
							xtype : 'combo',
							mode : 'remote',
							triggerAction : 'all',
							valueField : 'city_Name',
							displayField : 'city_Name',
							minListWidth : 200,
							store : messageCenter.citys
						}, {
							id : 'search_conduction',
							allowBlank : false,
							emptyText : '请选择发送高校或单位',
							blankText : '对不起，请选择发送高校或单位',
							xtype : 'combo',
							mode : 'local',
							triggerAction : 'all',
							valueField : 'conduction_Id',
							displayField : 'conduction_Name',
							pageSize : 8,
							minListWidth : 300,
							store : messageCenter.conductions
						}, {
							name : 'message_Contents',
							fieldLabel : '信息内容',
							allowBlank : false,
							blankText : '对不起，信息内容不能为空！',
							emptyText : '请填写信息内容',
							xtype : 'htmleditor',
							height : 250,
							width : 500,
							autoScroll : true
						}],
				buttonAlign : 'center',
				buttons : [{
					text : '提交',
					handler : function() {
						if (messageCenter.addPanel.getForm().isValid()) {
							messageCenter.addPanel.getForm().submit({
								url : 'center/writeMessageInfo',
								params : {
									conduction_Id : messageCenter.conduction_Id
								},
								method : 'post',
								waitMsg : '请稍候，正在处理数据.....',
								waitTitle : '提示',
								success : function(form, action) {
									if (action.result.success == true) {
										Ext.Msg.alert("提示", action.result.message);
										messageCenter.addPanel.getForm()
												.reset();
									} else {
										Ext.Msg.alert("提示", action.result.message);
									}
								},
								failure : function(form, action) {
									Ext.Msg.alert('提示', "服务器连接失败！！！！");
								}
							});
						}
					}
				}, {
					text : '重置',
					handler : function() {
						messageCenter.addPanel.getForm().reset();
					}

				}]
			});
	messageCenter.Menu = new Ext.menu.Menu({
		id : 'messageCenter_Menu',
		items : [{
			text : "查看详情",
			handler : function() {
				messageCenter.photoPath = "conduction/showMonitorPhoto?monitor_Id="
						+ new String(messageCenter.MenuClick.get("user_Id"));
				messageCenter.showPanel = new Ext.FormPanel({
							defaultType : 'displayfield',
							width : 700,
							labelAlign : 'center',
							constrain : true,
							constrainHeader : true,
							bodyStyle : {
								padding : '30px'
							},
							viewConfig : {
								forceFit : true
							},
							items : [{
								fieldLabel : '主题名称',
								value : messageCenter.MenuClick
										.get("theme")
							}, {
								fieldLabel : '发送时间',
								value : messageCenter.MenuClick
										.get("startTime")
							}, {
								fieldLabel : '发件人',
								value : messageCenter.MenuClick
										.get("place_Name")
							}, {
								fieldLabel : '接续主题',
								value : messageCenter.MenuClick.get("continue_Theme")
							}, {
								fieldLabel : '内容',
								value : messageCenter.MenuClick
										.get("content")
							}],
							buttonAlign : 'center',
							buttons : [{
										text : '退出',
										handler : function() {
											messageCenter.showWindow.close();
										}

									}]
						});

				messageCenter.showWindow = new Ext.Window({
							title : '监考人员详细信息窗口',
							width : 700,
							autoHeight : true,
							modal : true,
							resizable : false,
							animateTarget : 'target',
							items : [messageCenter.showPanel]
						});
				messageCenter.showWindow.show();
			}
		}, {
			text : '回复信件',
			handler : function() {
				if (messageCenter.MenuClick.get("message_State") == 2) {
					Ext.Msg.alert("提示","对不起，发件邮件不能进行回复！");
				} else {
					messageCenter.replyPanel = new Ext.FormPanel({
						defaultType : 'textfield',
						width : 700,
						labelAlign : 'center',
						constrain : true,
						constrainHeader : true,
						bodyStyle : {
							padding : '20px'
						},
						viewConfig : {
							forceFit : true
						},
						items : [{
							fieldLabel : '主题名称',
							xtype : 'displayfield',
							value : '回复:'
									+ messageCenter.MenuClick.get("theme")
						}, {
							fieldLabel : '回信地址',
							xtype : 'displayfield',
							value : '考试中心'
						}, {
							fieldLabel : '接续内容',
							xtype : 'displayfield',
							value : messageCenter.MenuClick.get("content")
						}, {
							name : 'message_Contents',
							fieldLabel : '回复内容',
							allowBlank : false,
							blankText : '对不起，信息内容不能为空！',
							emptyText : '请填写信息内容',
							xtype : 'htmleditor',
							height : 250,
							width : 500,
							autoScroll : true
						}],
						buttonAlign : 'center',
						buttons : [{
							text : '回复',
							handler : function() {
								if (messageCenter.replyPanel.getForm()
										.isValid()) {
									messageCenter.replyPanel.getForm()
											.submit({
												url : 'center/replyMessageInfo',
												params : {
													before_Id:messageCenter.beforeID,
													conduction_Id:messageCenter.conduction_Id,
													message_Theme : '回复:'
									+ messageCenter.MenuClick.get("theme")
												},
												method : 'post',
												waitMsg : '请稍候，正在处理数据.....',
												waitTitle : '提示',
												success : function(form, action) {
													if (action.result.success == true) {
														Ext.Msg
																.alert(
																		"提示",
																		action.result.message);
														messageCenter.replyPanel
																.getForm()
																.reset();
														messageCenter.replyWindow.hide();
													} else {
														Ext.Msg
																.alert(
																		"提示",
																		action.result.message);
													}
												},
												failure : function(form, action) {
													Ext.Msg.alert('提示',
															"服务器连接失败！！！！");
												}
											});
								}
							}
						}, {
							text : '重置',
							handler : function() {
								messageCenter.replyPanel.getForm().reset();
							}

						}]
					});
					messageCenter.replyWindow = new Ext.Window({
								title : '回复邮件窗口',
								width : 700,
								autoHeight : true,
								modal : true,
								resizable : false,
								draggable : false,
								closeAction : 'hide',
								animateTarget : 'target',
								items : [messageCenter.replyPanel]
							});
					messageCenter.replyWindow.show();
				}
			}
		
		}]
	});
	messageCenter.Main = new Ext.Panel({
				title : '消息信息管理',
				id : 'centerMessageMainPanel',
				frame : true,
				deferredRender : true,
				closeAction : 'hide',
				cm : messageCenter.cm,
				store : messageCenter.store,
				loadMask : true,
				autoWidth : true,
				// autoHeight : true,
				closable : true,
				layout : 'fit',
				viewConfig : {
					forceFit : true
				},
				items : [messageCenter.Panel]
			});
	messageCenter.addWindow = new Ext.Window({
				title : '撰写信息窗口',
				width : 700,
				autoHeight : true,
				modal : true,
				resizable : false,
				draggable : false,
				closeAction : 'hide',
				animateTarget : 'target',
				items : [messageCenter.addPanel]
			});
	Ext.getCmp("search_city").on('select', function(combo) {
				messageCenter.conductions.load({
							params : {
								city_Name : combo.getValue(),
								limit : 8
							}
						});
			});
	Ext.getCmp("search_conduction").on('select', function(combo) {
				messageCenter.conduction_Id = combo.getValue();
			});
	messageCenter.Panel.on("rowcontextmenu", function(grid, rowIndex, e) {
				e.preventDefault();
				var record = grid.getStore().getAt(rowIndex);
				messageCenter.beforeID=record.get("theme_Id");
				messageCenter.conduction_Id=record.get("fromPlace");
				messageCenter.Panel.getSelectionModel().selectRow(rowIndex);
				messageCenter.Menu.showAt(e.getXY());
				messageCenter.MenuClick = messageCenter.Panel
						.getSelectionModel().getSelected(rowIndex);
			});
};
Ext.onReady(messageCenter.init);